﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _03_委托的必要性_3
{
    public delegate void DoSomeDelegate();

    internal class Program
    {
        static void Main(string[] args)
        {
            #region 没有使用委托的情况下，，模拟在不同位置调用方法

            //DoWork();
            //DoWork();
            //DoWork();

            //Console.WriteLine("===============================================");

            //DoWork();
            //DoWork();
            //DoWork();

            //Console.WriteLine("===============================================");

            //DoWork();
            //DoWork();
            //DoWork();


            #endregion


            #region 使用委托的情况下，，模拟在不同位置调用方法(批量替换的作用)

            DoSomeDelegate doSomeDelegate = DoWork;

            doSomeDelegate();
            doSomeDelegate();
            doSomeDelegate();

            Console.WriteLine("===============================================");

            doSomeDelegate();
            doSomeDelegate();
            doSomeDelegate();

            Console.WriteLine("===============================================");

            doSomeDelegate();
            doSomeDelegate();
            doSomeDelegate();

            #endregion

            Console.Read(); 

        }

        public static void SayHi()
        {
            Console.WriteLine("Hi");
        }


        public static void DoWork()
        {
            Console.WriteLine("DoWork");
        }

    }
}
